/**
 * 补齐各个 POSIX 系统的 API 差异
 * 张勇 41204@qq.com
 */

#pragma once

#ifdef __cplusplus
extern "C" {
#endif

#if (defined _MSC_VER) || (defined USE_MICROLIB)
	const char* memmem(const char* haystack, size_t hlen, const char* needle, size_t nlen);
#elif (defined USE_XILINX_SDK)
	// Vitis 有 memmem() 函数，但不可见，所以手动声明一下
	//#define __GNU_VISIBLE // for memmem()
	//#include <string.h>
	void* memmem (const void *, size_t, const void *, size_t);
#else
	// 补充实现 visual c++ runtime 中有，但 glib-c 中没有的函数
	void _splitpath(const char *path, char *drive, char *dir, char *fname, char *ext);
	int stricmp(const char *s1, const char *s2);
#endif
	
#ifdef __cplusplus
} // extern "C"
#endif
